package veterinaria.negocio;

import java.util.Collection;
import veterinaria.dao.ClienteDAO;
import veterinaria.excepcion.DAOExcepcion;
import veterinaria.modelo.Cliente;
import veterinaria.modelo.Persona;
import veterinaria.modelo.Paciente;
import veterinaria.negocio.GestionPersona;

public class GestionCliente {

    public Collection<Cliente> buscarPorNombre(String pEst, String pNom) throws DAOExcepcion {
        ClienteDAO dao = new ClienteDAO();
        return dao.buscarPorNombre(pEst,pNom);
    }

    public Cliente insertar(String pEst, String pRuc, Persona pPer) throws DAOExcepcion {
        ClienteDAO dao = new ClienteDAO();
		GestionPersona gPer= new GestionPersona();
		String pNom = pPer.getPerNombre();
		String pDom=pPer.getPerDomicilio();
		String pTel=pPer.getPerTelefono();
		String pCel=pPer.getPerCelular();
		String pCor=pPer.getPerCorreo();
		String pIma=pPer.getPerImagen();
		Persona dPer=gPer.insertar(pNom, pDom, pTel, pCel, pCor, pIma);
        
        Cliente cReg = new Cliente();
        cReg.setCliEstado(pEst);
        cReg.setCliRuc(pRuc);
        cReg.setPersona(dPer);
        return dao.insertar(cReg);
    }

    public Cliente obtener(int pCod) throws DAOExcepcion {
        ClienteDAO dao = new ClienteDAO();
        return dao.obtener(pCod);
    }

    public void eliminar(int pCod) throws DAOExcepcion {
        ClienteDAO dao = new ClienteDAO();
        dao.eliminar(pCod);
    }

    public Cliente actualizar(int pCod, String pEst, String pRuc, Persona pPer) throws DAOExcepcion {
        ClienteDAO dao = new ClienteDAO();
        Cliente cReg = new Cliente();
        cReg.setCliCodigo(pCod);
        cReg.setCliEstado(pEst);
        cReg.setCliRuc(pRuc);
        cReg.setPersona(pPer); 
        return dao.actualizar(cReg);
    }

    public Collection<Cliente> listar() throws DAOExcepcion {
        ClienteDAO dao = new ClienteDAO();
        return dao.listar();
    }

    public Collection<Paciente> paciente(int pCli) throws DAOExcepcion {
        ClienteDAO dao = new ClienteDAO();
        return dao.paciente(pCli);
    }

}